Hello,我是 KK,今年的鐵人賽,想跟大家分享架設 n8n 遇到的一些挑戰跟意外,就讓我們一起學習吧。
一開始,我是看到這個影片的介紹 『n8n 免費雲端』😱 我發現了 n8n 最強免費部署法!2CPU+16GB記憶體+無限流量 = 0元?HuggingFace 太佛心! 含 reddis, postgres[^2]
簡單來說就是透過 HuggingFace 來架設 n8n,有提供 2 CPU, 16GB RAM,這個規格以免費空間來說算不錯的了。不過影片中提到的 redis, postgres 都是外部服務,並非 HuggingFace 提供的核心功能。 ^aa2830
設定方式影片裡其實講得很詳細了,我講幾個重要概念就好。
Hugging Face 成立於 2016 年,最初是一個開發聊天機器人的新創公司,後來轉型專注於自然語言處理。它以 Transformers 開源庫聞名,成為 NLP 領域最受歡迎的平台之一,提供大量預訓練模型(如 BERT、GPT)與 Transformers 庫,讓開發者能輕鬆應用 AI 模型於翻譯、問答、文本分類等任務。
HuggingFace 提供了幾個很方便開發者的功能,例如它的 space,背後是能使用 dockerfile 啟動的個人空間。而且你可以直接使用他人的寫好的 template,在幾分鐘內就無痛的複製出一份。也正如影片所說的每個 space 都有獨立的 2 CPU, 16GB RAM,而 disk 則是 50GB[^1]
另外,如果你是使用別人的 template,是可以直接在 web 點一個按鈕就升級到他的最新版本。n8n 的更版速度非常的快,往往 1~2 週就會出一個小版本。這個功能等於依賴於一開始的開發者更新版本的速度,依我的經驗,社群開發者通常會很快跟進新版本,所以幾乎是無痛升級。
如果 HuggingFace 真的那麼好,今天你們應該就不會看到這個主題了。我可能就改寫一篇歌頌 HuggingFace 的主題了吧。
實際上有好幾個點,最終讓我受不了而另尋替代品。
其實在一開始的影片[^2]裡,作者就有寫明有 48小時的休眠期。當時還不明白這是什麼意思,想說有設定隨便一個 schedule 不就是有活動了嗎?後來發現只要超過 48 小時沒有「外部」呼叫,space 就會進入休眠。
我的天啊,想像一下你將一切流程都在 HuggingFace 上建好自動化了,你優雅地過了兩天假日,在星期一時滿心期待 n8n 將工作成果雙手奉上。卻發現什麼事情都沒發生,設定好的 n8n workflow 一個都沒有跑,只好趕快重啟 HuggingFace space,並希望你的 workflow 是可以回溯這兩天該做的事,不然就只好先手動趕工作了。
是的,你必須在 n8n 網站上操作才算數,workflow 啟動再多個都無用,因為他的機制是基於外部 HTTP,而非內部排程器工作。而且進入休眠時你不會得到任何通知,workflow 當然完全不會執行。
好不容易自動化,最好他就是能穩穩的一直工作,讓你不要記得這個服務存在才是好服務。如果還要每天上去點一下,那還真有點煩人,就像工作打卡一樣。
不過還是有破解的方法。
n8n 有提供 API 服務[^3],你只要先產生 API Key,就能用 REST API 去呼叫。根據我的實驗結果,呼叫 API 是會被認定為外部呼叫的。所以你只要有一個排程每天去發一個 request,space 就不會進入休眠。
只是……又回到了這個排程要放在哪裡執行的問題了。本機自然是不行,因為電腦就要保持啟動,那我們還不如用本機自架 n8n 了。如果使用 HuggingFace 另外一個 space 去呼叫倒也是一個方法,架兩個 n8n 起來,互相定期 call API,只是我覺得有點好笑就是了。
HuggingFace 提供了很便利的 template 功能,讓我們能快速建立一個雲端 n8n,而且給的規格也不算差,在免費雲端空間內算中等了。
但是有好也有壞,今天提到的 [[鐵人賽 day6 - 總是看著你笑到直發寒的 HuggingFace Space#48小時休眠|48小時休眠]] 還算好解決。但另外還有幾個問題實際不好處理,才讓我興起轉換的念頭。
讓我們在 [[鐵人賽 day7 - HuggingFace Space 的坑]] 來繼續看我遇到的坑吧,像是:
感謝你今天的觀看,我是 KK,我們明日見。
[^1]: Spaces 概覽 - Hugging Face 機器學習平臺
[^2]: 『n8n 免費雲端』😱 我發現了 n8n 最強免費部署法!2CPU+16GB記憶體+無限流量 = 0元?HuggingFace 太佛心! 含 reddis, postgres https://www.youtube.com/watch?v=ucCamELP8UY
^6eb1fc
[^3]: n8n public REST API Documentation and Guides | n8n Docs